home *** CD-ROM | disk | FTP | other *** search
/ Windows Game Programming for Dummies (2nd Edition) / WinGamProgFD.iso / mac / DirectX SDK / DXSDK / include / DShowIDL / amvpe.idl < prev    next >
Text File  |  2001-10-08  |  6KB  |  171 lines

  1. //------------------------------------------------------------------------------
  2. // File: AMVPE.idl
  3. //
  4. // Desc: 
  5. //
  6. // Copyright (c) 1992-2001, Microsoft Corporation.  All rights reserved.
  7. //------------------------------------------------------------------------------
  8.  
  9.  
  10. import "unknwn.idl";
  11. import "objidl.idl";    // for IPersist (IFilter's root)
  12.  
  13.  
  14. /*
  15.  * VIDOESIGNALINFO
  16.  */
  17. typedef struct _VIDEOSIGNALINFO
  18. {
  19.     DWORD dwSize;               // Size of the structure
  20.     DWORD dwVREFHeight;         // Specifies the number of lines of data in the vref
  21.     BOOL  bDoubleClock;         // videoport should enable double clocking
  22.     BOOL  bVACT;                // videoport should use an external VACT signal
  23.     BOOL  bInterlaced;          // Indicates that the signal is interlaced
  24.     BOOL  bHalfline;            // Device will write half lines into the frame buffer
  25.     BOOL  bInvertedPolarity;    // Devoce inverts the polarity by default
  26. } AMVIDEOSIGNALINFO;
  27.  
  28. typedef struct AMVIDEOSIGNALINFO        *LPAMVIDEOSIGNALINFO;
  29.  
  30.  
  31. interface IVPEConfig;
  32. interface IVPE;
  33.  
  34.  
  35. /*
  36.  * DDVIDEOPORTCONNECT
  37.  */
  38. typedef struct _DDVIDEOPORTCONNECT
  39. {
  40.     DWORD dwSize;           // size of the DDVIDEOPORTCONNECT structure
  41.     GUID  guidTypeID;       // Description of video port connection
  42.     DWORD dwPortWidth;      // Width of the video port
  43.     DWORD dwFlags;          // Connection flags
  44. } DDVIDEOPORTCONNECT;
  45.  
  46. typedef DDVIDEOPORTCONNECT *LPDDVIDEOPORTCONNECT;
  47.  
  48.  
  49.  
  50. /*
  51.  * DDPIXELFORMAT
  52.  */
  53. typedef struct _DDPIXELFORMAT
  54. {
  55.     DWORD   dwSize;         // size of structure
  56.     DWORD   dwFlags;        // pixel format flags
  57.     DWORD   dwFourCC;       // (FOURCC code)
  58.     union
  59.     {
  60.     DWORD   dwRGBBitCount;      // how many bits per pixel (BD_1,2,4,8,16,24,32)
  61.     DWORD   dwYUVBitCount;      // how many bits per pixel (BD_4,8,16,24,32)
  62.     DWORD   dwZBufferBitDepth;  // how many bits for z buffers (BD_8,16,24,32)
  63.     DWORD   dwAlphaBitDepth;    // how many bits for alpha channels (BD_1,2,4,8)
  64.     };
  65.     union
  66.     {
  67.     DWORD   dwRBitMask;     // mask for red bit
  68.     DWORD   dwYBitMask;     // mask for Y bits
  69.     };
  70.     union
  71.     {
  72.     DWORD   dwGBitMask;     // mask for green bits
  73.     DWORD   dwUBitMask;     // mask for U bits
  74.     };
  75.     union
  76.     {
  77.     DWORD   dwBBitMask;     // mask for blue bits
  78.     DWORD   dwVBitMask;     // mask for V bits
  79.     };
  80.     union
  81.     {
  82.     DWORD   dwRGBAlphaBitMask;  // mask for alpha channel
  83.     DWORD   dwYUVAlphaBitMask;  // mask for alpha channel
  84.     DWORD   dwRGBZBitMask;      // mask for Z channel
  85.     DWORD   dwYUVZBitMask;      // mask for Z channel
  86.     };
  87. } DDPIXELFORMAT;
  88.  
  89. typedef DDPIXELFORMAT * LPDDPIXELFORMAT;
  90.  
  91.  
  92. [
  93. object,
  94. uuid(BC29A660-30E3-11d0-9E69-00C04FD7C15B),
  95. pointer_default(unique)
  96. ]
  97.  
  98. interface IVPEConfig : IUnknown {
  99.  
  100.         // gets the various connection information structures (guid, portwidth)
  101.         // in an array of structures. If the pointer to the array is NULL, first 
  102.         // parameter returns the total number of formats supported.
  103.         HRESULT GetConnectInfo(
  104.                         [in,out] LPDWORD lpNumConnectInfo,
  105.                         [out] LPDDVIDEOPORTCONNECT lpddvpConnectInfo
  106.         );
  107.  
  108.         HRESULT SetConnectInfo(
  109.                         [in] DDVIDEOPORTCONNECT ddvpConnectInfo
  110.         );
  111.  
  112.         // gets the various formats supported by the decoder in an array
  113.         // of structures. If the pointer to the array is NULL, first parameter
  114.         // returns the total number of formats supported.
  115.         HRESULT GetVideoFormats(
  116.                         [in,out] LPDWORD lpNumFormats,
  117.                         [out] LPDDPIXELFORMAT lpddpfFormats
  118.         );
  119.  
  120.         // retrives maximum pixels per second rate expected for a given 
  121.         // format and a given scaling factor. If decoder does not support 
  122.         // those scaling factors, then it gives the rate and the nearest 
  123.         // scaling factors.
  124.         HRESULT GetMaxPixelRate(
  125.                         [in] DDPIXELFORMAT ddpfFormat,
  126.                         [in,out] LPDWORD lpdwZoomHeight,
  127.                         [in,out] LPDWORD lpdwZoomWidth,
  128.                         [out] LPDWORD lpdwMaxPixelsPerSecond
  129.         );
  130.  
  131.         // retrives various properties of the decoder for a given format
  132.         HRESULT GetVideoSignalInfo(
  133.                         [in] DDPIXELFORMAT ddpfFormat,
  134.                         [out] LPAMVIDEOSIGNALINFO lpAMVideoSignalInfo
  135.         );
  136.         
  137.         // asks the decoder to ouput in this format. Return value should give
  138.         // appropriate error code
  139.         HRESULT SetVideoFormat(
  140.                         [in] DDPIXELFORMAT ddpfFormat
  141.         );
  142.  
  143.         // asks the decoder to treat even fields like odd fields and visa versa
  144.         HRESULT SetInvertPolarity(
  145.         );
  146.  
  147.         // sets the scaling factors. If decoder does not support these,
  148.         // then it sets the values to the nearest factors it can support
  149.         HRESULT SetScalingFactors(
  150.                         [in,out] LPDWORD lpdwZoomHeight,
  151.                         [in,out] LPDWORD lpdwZoomWidth
  152.         );
  153.  
  154.  }
  155.  
  156.  
  157.  
  158. [
  159. object,
  160. uuid(BC29A661-30E3-11d0-9E69-00C04FD7C15B),
  161. pointer_default(unique)
  162. ]
  163.  
  164. interface IVPE : IUnknown {
  165.         HRESULT SetOverlaySurface(
  166.                             [in] LPUNKNOWN lpOverlaySurface,
  167.                             [in] INT iNumBackBuffers
  168.         );
  169.  
  170. }
  171.